Projet Zuul de conception orientée objet en Java d'un jeu d'aventure
Forum des exercices du projet Zuul
Exercice 7.33
Implement an items command that prints out all items currently carried and their total weight.
En français, la commande pourait s'appeler inventaire.
Ne pas oublier de lire les échanges ci-dessous pour mieux comprendre la bonne manière de réaliser cet exercice.
Un étudiant a écrit :
1) ItemList n'est pas une ArrayList, elle contient une ArrayList.
C'est pourquoi vous ne pouvez pas appliquer de for-each dessus.
2) Ce n'est pas le rôle du Player de gérer l'ArrayList (ici, la parcourir), c'est justement pour cela qu'a été créée la classe ItemList.
Celle-ci doit donc fournir une fonction qui retourne une String contenant les informations que vous souhaitez.
Bonsoir,
Je
ne vois vraiment pas comment afficher les caractéristiques de chaque
objet de l'inventaire, merci d'avance de m'éclairer sur le sujet.
Normalement les items du player sont contenus dans une Itemlist que tu as créé dans le constructeur du player.
Tu dois donc créer une commande item ou inventaire (comme tu veux) dans ton gameengine pour l'instant, qui va afficher les items présents dans l'inventaire du joueur.
Pour cela il faut que tu utilises les méthodes propres au Hashmap (<String, Item> dans ce cas), qui vont afficher le nom et poids de chaque Item de cette Hashmap(qui est créé avec l'Itemlist),
ici le keySet.
Juste une précision sur le rôle de chaque classe :
- Item doit posséder une méthode qui fournit la description d'un item
- ItemList doit posséder une méthode qui fournit la description de tous ses items
- Room et Player doivent posséder une méthode qui fournit la description de tous les items de leur ItemList
(puisque personne ne doit savoir qu'une ItemList est utilisée à l'intérieur de Room et de Player)
- GameEngine doit afficher la description des items d'une Room ou du Player quand c'est nécessaire
Un étudiant a écrit :
> J'imagine que cela est dû à la représentation des réels en machine
>
oui
> mais y a-t-il un moyen d'arrondir au dixième le poids total ?
>
Bien sûr !
En vous servant par exemple de la méthode round()
de la classe Math
Bonjour Monsieur,
Pouvons-nous ajouter des fonctionnalités qui nous paraissent importantes mais qui ne sont pas demandées en exercice ?
J'ai
bien traité l'exercice Inventaire 7.33 , mais je souhaiterais que
le joueur puisse également connaitre le poids qu'il porte à chaque appel
de la commande take.
Pouvons-nous faire cela ou faut-il se limiter à ce qui est demandé en exercice ?
En vous remerciant par avance de votre réponse,
Bon Dimanche
Réseaux sociaux